Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prototyping explicit sharing for Quicksight types #4449

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

t0yv0
Copy link
Member

@t0yv0 t0yv0 commented Sep 11, 2024

Reintroduce Quicksight definitions schemas. Previously these were disabled from projecting to Pulumi to avoid dealing with the type explosion problem. With this PR configuration is introduced to detect and realize type sharing that mitigates type counts for Quicksight.

New bridge commits:

pulumi/pulumi-terraform-bridge@fbc2abd
pulumi/pulumi-terraform-bridge@f0fee4f

@t0yv0 t0yv0 changed the title T0yv0/full quicksight schema Prototyping explicit sharing for Quicksight types Sep 11, 2024
"path": "definition.$.sheets.$.visuals.$.bar_chart_visual.$.column_hierarchies.$.predefined_hierarchy.$.columns",
"resource": "aws_quicksight_dashboard"
},
"typeName": "DimensionFieldSchema2"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs another look. Equality failed to identify it with DimensionFieldSchema (no 2). Need to figure out if this is intentionally distinct and if so how to name it.

@t0yv0 t0yv0 force-pushed the t0yv0/full-quicksight-schema branch from 28a3e58 to 7ef76f7 Compare September 13, 2024 03:09
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
*
* const example = new aws.quicksight.Dashboard("example", {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Examples involving "definition" now render.

@@ -8,7 +8,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/iam v1.35.0
github.com/pulumi/providertest v0.0.14
github.com/pulumi/pulumi-aws/provider/v6 v6.0.0-00010101000000-000000000000
github.com/pulumi/pulumi-terraform-bridge/pf v0.43.1-0.20240911150014-7864bb06caa7
github.com/pulumi/pulumi-terraform-bridge/pf v0.43.1-0.20240912152522-f0fee4fb1db9
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another pre-release bridge feature in use.

@t0yv0 t0yv0 force-pushed the t0yv0/full-quicksight-schema branch from 7ef76f7 to 1fd3ecb Compare September 13, 2024 03:17
@t0yv0 t0yv0 mentioned this pull request Sep 13, 2024
"github.com/pulumi/pulumi/sdk/v3/go/common/tokens"
"github.com/pulumi/pulumi/sdk/v3/go/common/util/contract"
)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This code needs to move to the bridge.

providerInfo.DataSources[k] = v
}

st, err := readSharedTypesFile("provider/pkg/quicksight/shared-types-rewrites.json")
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might need to use embed here. Also file is currently too large. If X~>Y, then X.foo ~> Y.foo rewrites are redundant.

@@ -0,0 +1,445 @@
{
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are confirmed sharing roots - really would like to keep this work from this PR. It took a bit to confirm and name each one.

t0yv0 added a commit that referenced this pull request Sep 16, 2024
This change upgrades upstream to v5.67.0.

Fixes #4435
Fixes #4454

**v5.66.0 changes:**

Notable upstream additions:

New resources:

- datazone/environment.Environment

New functions:

- glue/getRegistry.getRegistry
- organizations/....getOrganizationalUnitDescendantOrganizationalUnits
- quicksight/getAnalysis.getAnalysis
- quicksight/getQuicksightAnalysis.getQuicksightAnalysis

Unfortunately the aws_quicksight_analysis datasource cannot yet be fully
supported in the provider because excessively large type hierarchies in
Quicksight cause issues for Pulumi SDKs. This is the same problem that
makes "definition" fields unavailable for Quicksight resources. A
solution is being explored in
#4449 but in the meantime the
"definition" field is not available yet in Pulumi for the given
datasource.

There also was a regression
hashicorp/terraform-provider-aws#39320 in
v5.66.0 that tripped pulumi-aws testing so the matching pulumi-aws
release is skipped.

**v5.67.0 changes:**

- cloudformation/stackInstances.StackInstances
- codebuild/fleet.Fleet
- computeoptimizer/enrollmentStatus.EnrollmentStatus
- computeoptimizer/recommendationPreferences.RecommendationPreferences
- costoptimizationhub/enrollmentStatus.EnrollmentStatus
- costoptimizationhub/preferences.Preferences
- datazone/assetType.AssetType
- lambda/functionRecursionConfig.FunctionRecursionConfig

New functions:

- codebuild/getFleet.getFleet

Unfortunately one of the upstream features that introduced support for
IAM role chaining is projecting as a breaking change to Pulumi types.
Since our policy is to prioritize backwards compatibility, this feature
has been backed out and is not yet available in the upcoming pulumi-aws
release.

See: hashicorp/terraform-provider-aws#22728

Reminder opened to track this in
#4459
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant